package org.lcc.Service;

import org.lcc.model.entity.StudentMistakeEntity;
import org.lcc.model.VO.UserDtoVO;
import org.lcc.model.dto.*;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public interface UserService {
    //登录
    UserDto login(LoginRequest request);
    //注册
    Boolean signin(Sign_inRequest signInRequest);
    //重置密码
    Boolean forget(String schoolNumber, String username, String NewPassword, String verifyCode, String verifyCodeKey);
    //创建班级
    Boolean createClass(CreateRequest createRequest);
    //批量插入学生信息
    boolean batchInsertion(List<Sign_inRequest> dataList,Integer classId);
    //修改用户信息
    Boolean updateUser(UserDto userDto);
    //查询该老师班级的所有学生
    UserDtoVO getStudentList(String teacherNumber);
    //获取老师的班级列表
    List<ClassInfoDto> getClassByTeacherNumber(String teacherNumber);
    //新增考生
    Boolean addStudent(AddStudentRequest request);
    //按班级筛选学生
    Map<String, Object> filterStudentsByClass(String teacherNumber, Integer classId, String keyword, String status, int offset, int pageSize);
    
    //删除学生
    Boolean deleteStudent(String schoolNumber);
    
    //批量激活学生
    void activateStudents(List<String> schoolNumbers);

    //批量禁用学生
    void disableStudents(List<String> schoolNumbers);

    //批量重置密码
    void resetStudentsPassword(List<String> schoolNumbers, String newPassword) throws Exception;

    //批量移动班级
    void moveStudentsClass(List<String> schoolNumbers, Integer targetClassId);

    //获取学生班级信息
    Map<String, Object> getStudentClass(String schoolNumber);
    List<StudentMistakeEntity> getWrongQuestionList();
}
